package com.fowo.api.model.tmp.tiktok.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** Tiktok订单临时表 导入导出辅助模型 */
@Getter
@Setter
public class TmpTiktokOrderExcelPo {

  @Size(max = 50, message = "订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单号")
  private String orderId;

  @Size(max = 50, message = "订单状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单状态")
  private String status;

  @Size(max = 50, message = "物流商名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流商名称")
  private String shippingProvider;

  @Size(max = 50, message = "物流商ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流商ID")
  private String shippingProviderId;

  @Size(max = 50, message = "支付时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "支付时间")
  private java.util.Date paidTime;

  @Size(max = 500, message = "卖家留言长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "卖家留言")
  private String buyerMessage;

  @Size(max = 50, message = "货币长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货币")
  private String currency;

  @Size(max = 50, message = "订单商品总额长度不能超过20")
  @ExcelProperty(value = "订单商品总额")
  private java.math.BigDecimal subTotal;

  @Size(max = 50, message = "支付运费长度不能超过20")
  @ExcelProperty(value = "支付运费")
  private java.math.BigDecimal shippingFee;

  @Size(max = 50, message = "卖方折扣金额长度不能超过20")
  @ExcelProperty(value = "卖方折扣金额")
  private java.math.BigDecimal sellerDiscount;

  @Size(max = 50, message = "平台折扣金额长度不能超过20")
  @ExcelProperty(value = "平台折扣金额")
  private java.math.BigDecimal platformDiscount;

  @Size(max = 50, message = "买方支付金额长度不能超过20")
  @ExcelProperty(value = "买方支付金额")
  private java.math.BigDecimal totalAmount;

  @Size(max = 50, message = "产品原价总额长度不能超过20")
  @ExcelProperty(value = "产品原价总额")
  private java.math.BigDecimal originalTotalProductPrice;

  @Size(max = 50, message = "折扣前运费长度不能超过20")
  @ExcelProperty(value = "折扣前运费")
  private java.math.BigDecimal originalShippingFee;

  @Size(max = 50, message = "卖方折扣运费长度不能超过20")
  @ExcelProperty(value = "卖方折扣运费")
  private java.math.BigDecimal shippingFeeSellerDiscount;

  @Size(max = 50, message = "平台折扣运费长度不能超过20")
  @ExcelProperty(value = "平台折扣运费")
  private java.math.BigDecimal shippingFeePlatformDiscount;

  @Size(max = 50, message = "税款总额长度不能超过20")
  @ExcelProperty(value = "税款总额")
  private java.math.BigDecimal tax;

  @Size(max = 50, message = "小订单费长度不能超过20")
  @ExcelProperty(value = "小订单费")
  private java.math.BigDecimal smallOrderFee;

  @Size(max = 50, message = "运费税长度不能超过20")
  @ExcelProperty(value = "运费税")
  private java.math.BigDecimal shippingFeeTax;

  @Size(max = 50, message = "商品税长度不能超过20")
  @ExcelProperty(value = "商品税")
  private java.math.BigDecimal productTax;

  @Size(max = 50, message = "RDF(零售配送费)长度不能超过20")
  @ExcelProperty(value = "RDF(零售配送费)")
  private java.math.BigDecimal retailDeliveryFee;

  @Size(max = 1000, message = "完整的收件人地址信息长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "完整的收件人地址信息")
  private String fullAddress;

  @Size(max = 50, message = "收件人手机号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人手机号")
  private String phoneNumber;

  @Size(max = 50, message = "收件人名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人名称")
  private String name;

  @Size(max = 50, message = "邮编号码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编号码")
  private String postalCode;

  @Size(max = 500, message = "详细地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址")
  private String addressDetail;

  @Size(max = 50, message = "区域编码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "区域编码")
  private String regionCode;

  @Size(max = 500, message = "街道地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "街道地址1")
  private String addressLine1;

  @Size(max = 500, message = "街道地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "街道地址2")
  private String addressLine2;

  @Size(max = 500, message = "街道地址3长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "街道地址3")
  private String addressLine3;

  @Size(max = 500, message = "街道地址4长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "街道地址4")
  private String addressLine4;

  @Size(max = 50, message = "国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "国家")
  private String country;

  @Size(max = 50, message = "州长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "州")
  private String addressState;

  @Size(max = 50, message = "县长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "县")
  private String addressCounty;

  @Size(max = 50, message = "市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "市")
  private String addressCity;

  @Size(max = 50, message = "区长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "区")
  private String addressDistrict;

  @Size(max = 50, message = "镇长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "镇")
  private String addressTown;

  @Size(max = 500, message = "配送地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址")
  private String dropOffLocation;

  @Size(max = 500, message = "取消原因长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "取消原因")
  private String cancelReason;

  @Size(max = 50, message = "取消请求发起者长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "取消请求发起者")
  private String cancellationInitiator;

  @Size(max = 50, message = "跟踪号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "跟踪号")
  private String trackingNumber;

  @Size(max = 50, message = "卖家发货的时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "卖家发货的时间")
  private java.util.Date rtsTime;

  @Size(max = 50, message = "平台指定的最晚发货时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "平台指定的最晚发货时间")
  private java.util.Date rtsSlaTime;

  @Size(max = 50, message = "平台指定的最晚揽收时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "平台指定的最晚揽收时间")
  private java.util.Date ttsSlaTime;

  @Size(max = 50, message = "订单自动取消时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单自动取消时间")
  private java.util.Date cancelOrderSlaTime;

  @Size(max = 50, message = "包裹ids长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹ids")
  private String packageIds;

  @Size(max = 50, message = "是否更新收件人地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否更新收件人地址")
  private String hasUpdatedRecipientAddress;

  @Size(max = 50, message = "买方用户ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买方用户ID")
  private String userId;

  @Size(max = 50, message = "指示订单是合并还是拆分长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "指示订单是合并还是拆分")
  private String splitOrCombineTag;

  @Size(max = 50, message = "发货方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货方式")
  private String fulfillmentType;

  @Size(max = 500, message = "卖家备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "卖家备注")
  private String sellerNote;

  @Size(max = 50, message = "仓库编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "仓库编号")
  private String warehouseId;

  @Size(max = 50, message = "付款方式名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "付款方式名称")
  private String paymentMethodName;

  @Size(max = 50, message = "配送方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送方式")
  private String shippingType;

  @Size(max = 50, message = "物流方式名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式名称")
  private String deliveryOptionName;

  @Size(max = 50, message = "物流方式ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式ID")
  private String deliveryOptionId;

  @Size(max = 50, message = "最晚交货时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "最晚交货时间")
  private java.util.Date deliverySlaTime;

  @Size(max = 50, message = "是否货到付款长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否货到付款")
  private String isCod;

  @Size(max = 50, message = "是否为示例订单长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否为示例订单")
  private String isSampleOrder;

  @Size(max = 50, message = "需要上传发票长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "需要上传发票")
  private String needUploadInvoice;

  @Size(max = 50, message = "买家电子邮件地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家电子邮件地址")
  private String buyerEmail;

  @Size(max = 50, message = "发票号码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发票号码")
  private String cpf;

  @Size(max = 50, message = "是否暂定订单长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否暂定订单")
  private String isOnHoldOrder;

  @Size(max = 50, message = "是否待处理取消订单长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否待处理取消订单")
  private String isBuyerRequestCancel;

  @Size(max = 50, message = "买方发起取消时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "买方发起取消时间")
  private java.util.Date requestCancelTime;

  @Size(max = 50, message = "最晚发货时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "最晚发货时间")
  private java.util.Date deliveryOptionRequiredDeliveryTime;

  @Size(max = 50, message = "最晚揽收时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "最晚揽收时间")
  private java.util.Date shippingDueTime;

  @Size(max = 50, message = "最晚运送时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "最晚运送时间")
  private java.util.Date collectionDueTime;

  @Size(max = 50, message = "最晚送达时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "最晚送达时间")
  private java.util.Date deliveryDueTime;

  @Size(max = 50, message = "揽收时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "揽收时间")
  private java.util.Date collectionTime;

  @Size(max = 50, message = "派送时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "派送时间")
  private java.util.Date deliveryTime;

  @ExcelProperty(value = "店铺id")
  private Long sid;
}
